/*
 * 基础弹框类
 * 用于输出提示数据
 * @author：黄
 */
'use strict'
// 此处使用elementui的弹框
import Element from 'element-ui'
// require('element-ui/lib/theme-chalk/index.css')
// import 'element-ui/lib/theme-chalk/index.css' 后期用es6实现完全解耦
class Layer {
  constructor () {
    this.loading = null
  }

  /*
     * 成功提示
     */
  success (info) {
    Element.Message.success({
      showClose: true,
      message: info,
      type: 'success'
    })
  }

  /*
     * 错误提示
     */
  error (info) {
    Element.Message.error({
      showClose: true,
      message: info,
      type: 'error'
    })
  }

  /*
     * 全局loading
     * 开启
     */
  openLoading () {
    this.loading = Element.Loading.service({
      lock: true,
      text: 'Loading',
      spinner: 'el-icon-loading',
      background: 'rgba(0, 0, 0, 0.7)'
    })
  }

  /*
     * 全局loading
     * 关闭
     */
  closeLoading () {
    this.loading.close()
  }

  /*
     * confirm
     */
  confirm (str, fun) {
    Element.MessageBox.confirm(str, '提示', {
      confirmButtonText: '确定',
      cancelButtonText: '取消',
      type: 'warning'
    }).then(() => {
      fun()
    }).catch(() => {})
  }

  /*
     * prompt
     */
  prompt (tips, fun) {
    Element.MessageBox.prompt(tips, '提示', {
      confirmButtonText: '确定',
      cancelButtonText: '取消'
    }).then(({ value }) => {
      // 和后端交互
      if (value) fun(value)
    }).catch(() => {})
  }
}

export default new Layer()
